Logical volumes of a storage system change over time. The content of a logical volume at different points in time may be represented by snapshots. In a sense a snapshot is a frozen version of the logical volume as it was at a certain point in time.
For example, each logical volume may have snapshots SNj(i) wherein j is the identifier of the logical volume, and i is a running index of snapshots (points in time) for the given volume.
Consecutive snapshots of a certain logical volume may be represented in various manners.
Each snapshot may be retrieved by snapshot metadata. For example—each snapshot may have snapshot metadata that may point to the entire data blocks that form the snapshot. Yet for another example—a snapshot may be retrieved using snapshot metadata that points to differences (deltas) between the snapshot and a previous snapshot.
Accordingly—snapshots Nj(2) can be represented by differences in the content of the j'th logical volume between the time of creation of SNj(1) and the time of creation of SNj(2).
Snapshots may be used in order to recover a corrupted logical volume. There is a growing need to provide mechanism for enhancing the reliability of snapshots.